﻿"""
系统配置文件
包含所有系统参数、常量和配置项
"""

import os

# 数据库配置
DATABASE_CONFIG = {
    'db_name': 'attendance_system.db',
    'db_path': os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), 'data', 'attendance_system.db')
}

# 人脸识别配置
FACE_RECOGNITION_CONFIG = {
    'recognition_threshold': 0.6,  # 识别阈值
    'min_face_size': (100, 100),   # 最小人脸尺寸
    'check_in_interval': 5,        # 打卡间隔（秒）
    'recognition_interval': 1,     # 识别间隔（秒）
    'mirror_mode': True,           # 视频镜像模式
    'display_interval': 5          # 显示间隔（秒）
}

# 摄像头配置
CAMERA_CONFIG = {
    'camera_index': 0,             # 摄像头索引
    'frame_width': 640,            # 帧宽度
    'frame_height': 480,           # 帧高度
    'fps': 30                      # 帧率
}

# 界面配置
UI_CONFIG = {
    'window_title': '人脸考勤系统',
    'window_size': (1200, 800),
    'font_family': 'Microsoft YaHei',
    'font_size': 10,
    'camera_preview_size': (640, 480)
}

# 中文字体路径
CHINESE_FONT_PATHS = [
    'C:/Windows/Fonts/simhei.ttf',  # 黑体
    'C:/Windows/Fonts/simsun.ttc',  # 宋体
    'C:/Windows/Fonts/msyh.ttc',    # 微软雅黑
]

# 文件路径配置
FILE_PATHS = {
    'data_dir': 'data',
    'exports_dir': 'exports',
    'logs_dir': 'logs'
}

# 颜色配置
COLORS = {
    'primary': '#2196F3',
    'success': '#4CAF50',
    'warning': '#FF9800',
    'error': '#F44336',
    'info': '#9C27B0',
    'secondary': '#607D8B',
    'attended': (200, 255, 200),    # 已打卡行颜色
    'not_attended': (255, 200, 200) # 未打卡行颜色
}

# 按钮样式配置
BUTTON_STYLES = {
    'primary': """
        QPushButton {
            padding: 10px;
            font-weight: bold;
            background-color: #2196F3;
            color: white;
            border-radius: 5px;
        }
        QPushButton:hover {
            background-color: #1976D2;
        }
    """,
    'success': """
        QPushButton {
            padding: 10px;
            font-weight: bold;
            background-color: #4CAF50;
            color: white;
            border-radius: 5px;
        }
        QPushButton:hover {
            background-color: #388E3C;
        }
    """,
    'warning': """
        QPushButton {
            padding: 10px;
            font-weight: bold;
            background-color: #FF9800;
            color: white;
            border-radius: 5px;
        }
        QPushButton:hover {
            background-color: #F57C00;
        }
    """,
    'error': """
        QPushButton {
            padding: 10px;
            font-weight: bold;
            background-color: #F44336;
            color: white;
            border-radius: 5px;
        }
        QPushButton:hover {
            background-color: #D32F2F;
        }
    """,
    'info': """
        QPushButton {
            padding: 10px;
            font-weight: bold;
            background-color: #9C27B0;
            color: white;
            border-radius: 5px;
        }
        QPushButton:hover {
            background-color: #7B1FA2;
        }
    """,
    'secondary': """
        QPushButton {
            padding: 10px;
            font-weight: bold;
            background-color: #607D8B;
            color: white;
            border-radius: 5px;
        }
        QPushButton:hover {
            background-color: #455A64;
        }
    """
}
